[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
1 はじめに
IoT事業部の平内(SIN)です。
M5Stack Core2 for AWSを使うために、ここまで、PlatformIOで新規プロジェクトを作成して作業を始めることこと、Core2 for AWS IoT EduKit BSPの組み込みを試してみました。
今回は、引き続き、Core2 for AWS IoT EduKit BSPを使用して、「仮想ボタン」の利用方法を確認してみました。
ここで言う「仮想ボタン」とは、ディスプレイの下にある3つの印の部分の事です。
2 コード
「仮想ボタン」のタッチを検出しているコードです。
main.c
#include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #include "core2forAWS.h" static const char *TAG = "SAMPLE001"; static void button_task(void* pvParameters){ for(;;){ if (Button_WasPressed(button_left)) { ESP_LOGI(TAG, "LEFT PRESSED!"); } if (Button_WasPressed(button_middle)) { ESP_LOGI(TAG, "MIDDLE PRESSED!"); } if (Button_WasPressed(button_right)) { ESP_LOGI(TAG, "RIGHT PRESSED!"); } vTaskDelay(pdMS_TO_TICKS(80)); } vTaskDelete(NULL); // Should never get to here... } void app_main(void){ Core2ForAWS_Init(); xTaskCreatePinnedToCore(button_task, "buttonTask", configMINIMAL_STACK_SIZE * 3, NULL, 1, NULL, 1); }
ボタンに触れると、シリアルモニターで下記のようにログを確認できます。
3 API Reference
仮想ボタンに関するAPIのリファレンスは、下記にあります。
https://edukit.workshop.aws/en/api-reference/button.html
どのボタンがタッチされたのか、また、現在の状況は?、そして、長時間押されているか?などを処理することが可能です。
4 CONFIG_SOFTWARE_BUTTON_SUPPORT
仮想ボタンを使用する場合、sdkconfigでCONFIG_SOFTWARE_BUTTON_SUPPORTが有効になっている必要があります。
デフォルトで有効ですが、うまく動作しない時は、意図せず、削除されていないかを、最初に確認したほうが良いと思います。
5 最後に
今回は、新規作成したプロジェクトに、Core2 for AWS IoT EduKit BSPを組み込み、仮想ボタンの動作を確認してみました。
仮想ボタンは、ちょっとUXに制限があるので、もしかすると、このような機能は、LVCLでディスプレイ上に配置する方が、利用場面は多いかもしれません。
次回、LVCLでディスプレイ上にボタンを配置する要領を確認使用と思います。
6 参考リンク
Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
[M5Stack Core2 for AWS] PlatformIO を使用して、ArduinoでHello Worldしてみました
[M5Stack Core2 for AWS] ArduinoでLED (Adafruit NeoPixel フルカラーLED) を点灯してみました
[M5Stack Core2 for AWS] Arduinoで仮想ボタンを作成してみました
[M5Stack Core2 for AWS] ArduinoでMQTT接続してみました
[M5Stack Core2 for AWS] Arduinoでオーディオファイルを再生してみました
[M5Stack Core2 for AWS] Arduinoでマイクの利用方法を確認してみました
[M5Stack Core2 for AWS] ArduinoでGroveポートのGPIOを使用しててみました